
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>MCP是怎么和大模型交互 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>MCP是怎么和大模型交互 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">MCP协议旨在解决大模型的什么核心局限性？它的主要作用是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP旨在解决大模型知识局限于其训练数据截止时间点的核心局限性。它的主要作用是作为一个开放标准协议，定义大模型与外部工具和服务之间的通信规范，让AI能够理解并调用外部功能，从而执行实际操作。</div>
          </div>
          <div class="card-source">来源: MCP是怎么和大模型交互, 1.1 什么是MCP协议</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">MCP架构包含哪三个核心组件，它们各自的角色是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP架构包含三个核心组件：1) 客户端 (Client)：大模型所在的系统，负责发送请求和处理响应。2) 服务器 (Server)：提供工具和服务的系统，负责执行具体的操作。3) 协议层 (Protocol)：基于JSON-RPC的通信协议，确保消息的标准化传输。</div>
          </div>
          <div class="card-source">来源: 1.2 MCP的核心组件</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">与传统API相比，MCP协议在接口定义和扩展性方面有何主要区别？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">主要区别在于：1) 接口定义：传统API的接口是固定不变的，而MCP协议支持接口的动态发现。2) 扩展性：传统API扩展功能需要重新部署，而MCP协议支持即插即用，可以动态添加新工具。</div>
          </div>
          <div class="card-source">来源: 1.3 与传统API的区别</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">MCP的协议通信机制包含哪四个主要阶段？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP的通信流程包含四个主要阶段：1) 工具发现阶段：客户端向服务器请求可用工具列表。2) 工具调用阶段：客户端发送具体工具调用请求。3) 结果返回阶段：服务器执行操作并返回结果。4) 错误处理阶段：处理异常情况和错误信息。</div>
          </div>
          <div class="card-source">来源: 2.1 协议通信机制</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">为了确保工具调用的安全性，MCP支持哪些认证机制？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP支持多种安全认证方式，包括：API密钥认证、OAuth 2.0、JWT令牌以及IP白名单。</div>
          </div>
          <div class="card-source">来源: 2.3 安全认证机制</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">优势</div>
          <div class="card-question">MCP协议如何增强大模型的数据时效性和功能扩展性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">优势</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP通过让大模型访问最新的实时数据（如股票API），打破了其训练数据的时间限制，从而增强了数据时效性。同时，它支持动态添加新工具而无需重新训练模型，实现了功能的即插即用扩展，增强了功能扩展性。</div>
          </div>
          <div class="card-source">来源: 3.1 实时数据访问能力, 3.2 动态工具扩展</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">应用</div>
          <div class="card-question">请列举文档中提到的MCP至少三种实际应用场景。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">应用</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档中提到的实际应用场景包括：金融数据分析（实时分析市场数据）、智能家居控制（直接控制智能设备）、企业系统集成（处理内部CRM等业务数据）以及个人助理服务（执行安排会议等日常任务）。</div>
          </div>
          <div class="card-source">来源: 4. 实际应用场景</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">实践</div>
          <div class="card-question">在开发MCP工具时，文档建议了哪些最佳实践？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">实践</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档建议的最佳实践包括：1) 始终包含完善的错误处理机制；2) 严格验证输入参数的类型和范围；3) 记录工具调用的关键信息（日志记录）；4) 避免长时间阻塞的操作以优化性能；5) 实施适当的访问控制以保障安全。</div>
          </div>
          <div class="card-source">来源: 5.3 最佳实践建议</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">MCP协议基于哪种底层通信协议？它如何利用该协议进行工具发现？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">MCP采用JSON-RPC 2.0作为底层通信协议。在工具发现阶段，客户端会发送一个JSON-RPC请求，其中`method`字段为`"tools/list"`，服务器则会返回一个包含可用工具列表的JSON-RPC响应。</div>
          </div>
          <div class="card-source">来源: 2.1 协议通信机制</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
